4a8de28fdd72a4dd2f492d4f9ec1fd8b611119be,AndResGuard-core/src/main/java/com/tencent/mm/androlib/ResourceRepackage.java,ResourceRepackage,generalRaw7zip,#,115

Before Change


        String path = outPath + File.separator + "*";

        String cmd = Utils.isPresent(sevenZipPath) ? sevenZipPath : TypedValue.COMMAND_7ZIP;
        cmd += " a -tzip " + mSignedWith7ZipApk.getAbsolutePath() + " " + path + " -mx9";
        pro = Runtime.getRuntime().exec(cmd);

        InputStreamReader ir = new InputStreamReader(pro.getInputStream());
        LineNumberReader input = new LineNumberReader(ir);
        //如果�读会有问题,被阻塞
        while (input.readLine() != null) {
            ;
        }
        //destroy the stream
        if (pro != null) {
            pro.waitFor();
            pro.destroy();
        }
    }

After Change


    private void generalRaw7zip() throws IOException, InterruptedException {
        System.out.printf("general the raw 7zip file\n");
        String outPath = m7zipOutPutDir.getAbsoluteFile().getAbsolutePath();
        String path = outPath + File.separator + "*";

        String cmd = Utils.isPresent(sevenZipPath) ? sevenZipPath : TypedValue.COMMAND_7ZIP;
        ProcessBuilder pb = new ProcessBuilder(cmd, "a -tzip", mSignedWith7ZipApk.getAbsolutePath(), path, "-mx9");
        Process pro = pb.start();

        InputStreamReader ir = new InputStreamReader(pro.getInputStream());
        LineNumberReader input = new LineNumberReader(ir);
        //如果�读会有问题,被阻塞
        while (input.readLine() != null) {
        }
        //destroy the stream
        pro.waitFor();
        pro.destroy();
    }

    private void addStoredFileIn7Zip(ArrayList<String> storedFiles) throws IOException, InterruptedException {